/*
 * @(#)ModTime.java 1.00 8 Sep 2007
 *
 * Copyright (c) 2005-2007 Soluciones Info Móviles S.A.C.
 * Av. Javier Prado Oeste 203 - Piso 13, Lima 27, Perú.
 * Todos los derechos reservados.
 */
package sim.time;

import sim.framework.*;
import sim.forms.*;
import sim.framework.io.*;

public final class ModTime extends ModForm {
    
    private static final byte DLG_DATE = 1;
    private static final byte DLG_TIME = 2;
    
    public ModTime(int i, Simlet s) {
        super(i, s);
    }
    
    protected Form formCreate() {
	return Form.create(m_Simlet, FileNames.FORM_TIME);
    }
    
    protected String formTitleLabel(final FrmNode node) {
        return getLabel(Resource.LBL_TITLE_APP);
    }
    
    public void work(final Msg msg) {
        DocTime doc;
        
        switch (msg.getWParam()) {
            case Executable.STATE_INIT:
                
                //#ifdef DEBUG_ModTime
                //# System.out.println("ModTime::work() ENTERED");
                //#endif
                
                // Recuperar el documento. Si no éxiste ...
                doc = (DocTime)getDocument(Simlet.MOD_TIME);
                if (doc == null) {
                    // ... crear el documento
                    doc = new DocTime(m_Simlet);
                    setDocument(Simlet.MOD_TIME, doc);
                }
                // Si el documento puede no puede ser cargado ...
                if (!doc.load()) {
                    // Capturar la configuración de usuario.
                    // desde un formulario.
                    
                    //#ifdef DEBUG_ModTime
                    //# System.out.println("\tSolicitar preferencias de usuario");
                    //#endif
                    super.work(msg);
                    return;
                }
                
                //#ifdef DEBUG_ModTime
                //# System.out.println("\tDocumento cargado, continuar");
                //#endif
                execNext();
                
                //#ifdef DEBUG_ModTime
                //# System.out.println("ModTime::work() EXITING");
                //#endif
        }
    }
    
    protected void formGoToNext() {
        DocTime doc;
        int date, time;
        
        //#ifdef DEBUG_ModTime
        //# System.out.println("ModTime::formGoToNext() ENTERED");
        //#endif
        
        doc = (DocTime)getDocument(Simlet.MOD_PREF);
        
        // Date
        date = Integer.parseInt(getOption(ModTime.DLG_DATE));
        
        // Time
        time = Integer.parseInt(getOption(ModTime.DLG_TIME));
        
        //Setear las propiedades
        doc.setTime(date + time);
        
        // Guardar el documento
        doc.save();
        
        execNext();
        
        //#ifdef DEBUG_ModTime
        //# System.out.println("ModTime::formGoToNext() EXITING");
        //#endif
    }
    
    protected void formGoToExit() {
        execBack();
    }
    
}
